package com.huabo.contract.service;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.hbfk.entity.TblStaffUtil;
import com.hbfk.util.PageInfo;
import com.huabo.contract.oracle.entity.TblCyhwProjectbudget;

public interface TblCyhwProjectbudgetService {

	Map<String,Object> findBudgetListByStaffOrg(String token, String flowId, String staffId, TblCyhwProjectbudget budget, Integer currentPage, Integer pageSize) throws Exception;

	Map<String, Object> loadAddOppositePartyInfo(String flowId, Integer contractId, String choiceSearch, String token, String staffId) throws Exception;

	Map<String, Object> SaveOppositeParty(TblCyhwProjectbudget tcpb, String attids, String staffId, String token,String flowId) throws Exception;

	void removeOppsiteFile(String attid) throws Exception;

	Integer findStatueById(Integer budgetId) throws Exception;

	Map<String, Object> findOppsiteAllInfoById(String flowId, Integer budgetId, String token,String staffId) throws Exception;

	Map<String,Object> mengerOppsitePartyById(TblCyhwProjectbudget tcpb, String token, String staffId, String attids) throws Exception;

	Map<String, Object> removeOppsitePartyInfo(String flowId, String token, String staffId, String budgetId) throws Exception;

	Map<String, Object> submitOppsitePartApproval(String budgetId, String token, String staffId, String examination, String flowId) throws Exception;

	Map<String, Object> saveOppsitePartyBlack(Integer budgetId, String token, String staffId, Integer blackType,String datetext) throws Exception;

	Map<String, Object> removeBlackList(Integer budgetId, String token, String staffId) throws Exception;

	//Map<String, Object> finOppsiteWarningList(Integer pageNumber, TblCyhwProjectbudget budget, Integer isFlowdb,String flowNumber, Integer view, Integer pageSize, String staffId, String token) throws Exception;

	Map<String, Object> findOppsiteBlackList(Integer pageNumber, TblCyhwProjectbudget tcbp, String flowNumber,
			Integer pageSize, String staffId, String token,String choose) throws Exception;

	List<TblCyhwProjectbudget> blacklistExport(BigDecimal orgid) throws Exception;

	Map<String, Object> findOppsiteProcessInfo(String budgetId, String cateId, String v, String flowid, String tId,String staffId, String token) throws Exception;

	Map<String, Object> viewOppsiteActiviti(String budgetId, String view, String taskId, String flowid, String flowname,String cateId, String staffId, String token) throws Exception;

	Map<String, Object> blOppsiteProcessyszc(String budgetId, String taskId, String processDefinitionId,
			String processInstanceId, String transitionName, String examination, String cyId, String token,String staffId)throws Exception;


    void invoiceCounterpartInfoListByPageInfo(PageInfo<TblCyhwProjectbudget> pageInfo, TblCyhwProjectbudget tcpb);

	Map<String, Object> insertOrUpdateBybudget(TblCyhwProjectbudget tcpb, String token, String attids,String flowId,Integer sealorgid);

    Map<String, Object> projectrBudgetToModify(BigDecimal flowId, Integer budgetId);

    void insertOrUpdateBybudgetTcb(TblCyhwProjectbudget tcb) throws Exception;

    void updateTcb(TblCyhwProjectbudget tcb) throws Exception;

	TblCyhwProjectbudget findBudgetid(Integer budgetid);

    String removeOppsitePartyBlack(Integer budgetid);

    void findListByPageInfo(PageInfo<TblCyhwProjectbudget> pageInfo, BigDecimal orgid);

    void findListByPage(PageInfo<TblCyhwProjectbudget> pageInfo, String userid, BigDecimal orgid);

	boolean getByModuel(String flownumber, TblStaffUtil staff);

    void findListByPageInfoTcpb(PageInfo<TblCyhwProjectbudget> pageInfo, BigDecimal orgid, TblCyhwProjectbudget tcpb);

    void findListByPageTcpb(PageInfo<TblCyhwProjectbudget> pageInfo, String staffid, BigDecimal orgid, TblCyhwProjectbudget tcpb);

	Map<String, Object> finOppsiteWarningList(Integer pageNumber, TblCyhwProjectbudget budget, Integer isFlowdb, String htgl001, Integer view, Integer pageSize, String staffId, String token);

	Map<String, Object> projectrBudgettoAdd(BigDecimal flowId, Integer contractId);
	

//    boolean getByModuel(String flownumber, BigDecimal staffid);


    //Map<String, Object> findxdfblInfo(String budgetId, String flowId, String token);
	
	//相对方信息接口同步
	Map<String, Object> getList(String startDate,String orgid) throws Exception;
	
	public TblCyhwProjectbudget findEntityByOutSideId(String outSideId) throws Exception;
}
